package com.lsj.dto.sys;

import com.lsj.core.page.QueryEnum;
import com.lsj.core.page.QueryTag;
import com.lsj.core.validate.Add;
import com.lsj.core.validate.Update;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * @Author:lin.sj
 * @Data:2021/7/14 11:11
 * @Desc:
 */
@Data
@Accessors(chain = true)
public class OrgDto {
    /**
     * 主键
     */
    @NotNull(message = "主键不能为空",groups = {Update.class})
    private Long id;

    /**
     * 上级组织编码
     */
    @NotNull(message = "父级主键不能为空",groups = {Add.class,Update.class})
    private Long orgPid;

    /**
     * 所有的父节点id
     */
    private String orgPids;

    /**
     * 0:不是叶子节点，1:是叶子节点
     */
    @NotNull(message = "是否叶子节点状态不能为空",groups = {Update.class})
    private Boolean isLeaf;

    /**
     * 组织名
     */
    @NotBlank(message = "组织名称不能为空",groups = {Add.class,Update.class})
    @QueryTag(QueryEnum.like)
    private String orgName;

    /**
     * 组织编码
     */
    @NotBlank(message = "组织编码不能为空",groups = {Add.class,Update.class})
    @QueryTag(QueryEnum.like)
    private String orgCode;

    /**
     * 地址
     */
    @QueryTag(QueryEnum.like)
    private String address;

    /**
     * 电话
     */
    @QueryTag(QueryEnum.like)
    private String phone;

    /**
     * 邮件
     */
    @QueryTag(QueryEnum.like)
    private String email;

    /**
     * 排序
     */
    @NotNull(message = "排序信息不能为空",groups = {Update.class})
    private Integer sort;

    /**
     * 组织层级
     */
    @NotNull(message = "菜单层级信息不能为空",groups = {Update.class})
    private Integer level;

    /**
     * 0:启用,1:禁用
     */
    @NotNull(message = "启用状态不能为空",groups = {Update.class})
    private Boolean status;
}
